package test.test_7_2;

/*
创建一个名为Library的外围类，其中包含一个名为Book的静态内部类。
Book类包含两个私有成员变量：String title和String author，以及一个构造函数用于初始化这些变量。
Library类存在一个Book对象数组作为成员变量，用于存储Book对象。再定义一个成员方法addBook，该方法需要传入书名和作者作为参数，
然后将这个Book对象添加到成员变量的Book数组中（找null的位置，进行插入，可以考虑将Book数组的长度初始值给大一点）
Library类包含一个名为displayBooks的方法，用于打印Book对象数组中所有书籍的详细信息。
Book类还包含一个名为displayInfo的方法，用于打印书籍的详细信息。
最后，在测试类当中创建Library对象并调用方法，进行代码测试。
 */
public class Demo02 {
    public static void main(String[] args) {
        Library library = new Library();
        library.disPlayBook();
        System.out.println("************************");
        library.addBook("成为首富","wzx");
        library.disPlayBook();
        library.disPlayBook();


    }
}

class Library {
    private Book[] books = new Book[88];
    {
        books[0] = new Book("斗破苍穹", "天蚕土豆");
        books[1] = new Book("妖神记", "发飙的蜗牛");
        books[2] = new Book("不能承受的生命之重", "米兰昆德拉");
        books[3] = new Book("追风筝的人", "卡勒德·胡赛尼");
    }


    class Book {
        private String title;
        private String author;
        //打印书籍的详细信息

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getAuthor() {
            return author;
        }

        public void setAuthor(String author) {
            this.author = author;
        }

        public Book() {
        }

        public Book(String title, String author) {
            this.title = title;
            this.author = author;
        }
        public void displayInfo() {
            System.out.println("书名：" + this.getTitle() + "..." + "作者:" + this.getAuthor());
        }

    }
    //添加书籍
    public boolean addBook(String title, String author) {
        boolean flag = false;
        // 要添加的商品的title和author不能重复
        for (Book p : books) {
            // 对现在的数据进行遍历
            // 比较一下是否有重复的id
            if (p != null) {
                if (p.getAuthor().equals(author) && p.getTitle().equals(title)) {
                    // 如果有 不允许添加 返回false
                    System.out.println("添加失败");
                    return flag;
                }
            }
        }
        // 如果没有 添加到数组中 返回true

        for (int i = 0; i < books.length; i++) {
            //创建书籍信息对象
            Book book = new Book(title,author);
            // 找到一个等于null的位置
            if (books[i] == null) {
                books[i] = book;
                flag = true;
                break;
            }
        }
        return flag;
    }
    //打印所有书籍的信息
    public void disPlayBook() {
        for (Book book : books) {
            if (book != null) {
                book.displayInfo();
            }
        }
    }
}
